import java.util.*;

/**
 * @author LKQ
 * @date 2022/5/13 10:36
 * @description 暴力枚举，x，y的最小值为2，bound为 10^6 数据量时，最多需要循环20次
 */
public class Solution {
    public static void main(String[] args) {

    }
    public List<Integer> powerfulIntegers(int x, int y, int bound) {
        Set<Integer> set = new HashSet<>();
        for (int i = 0; i < 20 && Math.pow(x, i) <= bound; i++) {
            for (int j = 0; j < 20 && Math.pow(y, j) <= bound; j++) {
                int v = (int ) Math.pow(x, i) + (int) Math.pow(y, j);
                if (v <= bound) {
                    set.add(v);
                }
            }
        }
        return new ArrayList<>(set);
    }
}
